/* jzc 2020-02-03 */
#include <stdio.h>
#include <unistd.h>

int main(int argc, char ** argv) {
    int fd[2]; // 创建两个文件描述符用于操作管道
    pid_t pid;
	char buffer[20];

	if (pipe(fd) < 0) {	//初始化管道
        printf("Create pipe Error!\n");
	}

	if ((pid = fork()) < 0) { // 创建子进程,用于与父进程进行通讯
        printf("Fork Error!\n");
    } else if (pid > 0) { // 父进程
        close(fd[0]); //关闭读端
        write(fd[1], "Hello, pipe IPC \n\r", 17);
        close(fd[1]); //关闭写端
    } else {
        close(fd[1]); //关闭写端
        read(fd[0], buffer, 20);
        close(fd[0]); //关闭读端
        printf("Read data = %s\n", buffer);
	}
}

